亚洲中文字幕无码AV,九九天天干人妻天天操天天玩,色欲久久国产色AV免费看老司,国产熟妇另类久久久久

【20年品牌建站】找北京網站建設公司就選新鴻儒/提供北京網站建設報價/北京網站制作/北京網站設計/網站開發、北京網站建設公司電話【400-024-1998】有優惠哦!
簡體
繁體 簡體
我們的服務遍布中國

我們的服務遍布中國
乃至世界

新鴻儒所服務的品牌地域與城市
北京 天津 上海 廣州 深圳 香港 廈門 江蘇 浙江 山東
重慶 長沙 武漢 成都 西安 寧夏 麗江 青海 云南 烏魯木齊
黑龍江 內蒙古 河北 ...
新鴻儒服務與合作的全球各地
美國 加拿大 德國 法國 英國 瑞士 意大利 荷蘭
印度 日本 韓國 ...

不論你的品牌在何處
我們都可以提供完善的服務與幫助

致電

400-024-1998

高性能網站建設之 MS Sql Server數據庫分區

發布時間:2013-11-22 瀏覽:387打印字號:

 

什么是數據庫分區?
數據庫分區是一種對表的橫向分割,Sql server 2005企業版和之后的Sql server版本才提供這種技術,這種對表的橫向分割不同于2000中的表分割,它對訪問用戶是透明的,用戶并不會感覺的表被橫向分割了。(2000中的表橫向分割是建n個表例如按時間建表每月一個表,表名不同,最后需要做一個大視圖)

關于具體的如何做分區,請參考數據庫分區演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

為什么要分區?
顯而易見分區是為了提高數據庫的讀寫性能,提高數據庫的效率;

分區是否總是可以提高效率?
分區是一把雙刃劍,并不總能提高效率,這和具體情況有關系。
之所以有分區技術,分區技術用的好的話可以提高性能,是因為一方面分區把一大塊數據分成了n小塊,這樣查詢的時候很快定位到某一小塊上,在小塊中尋址要快很多;另一方面CPU比磁盤IO快很多倍,而硬件上又有多個磁盤,或者是RAID(廉價磁盤冗余陣列),可以讓數據庫驅動CPU同時去讀寫不同的磁盤,這樣才有可能可以提高效率。
分區在有些時候并不能提高讀寫效率,比如說我們經常看到的按照日期字段去分區MSDN例子,這個實例中是按照記錄的生成時間來分區的,把一年的數據分割成12個分區,每月一個。這樣的分區導致分區并不能實現CPU同步寫并提高寫入性能,因為在同一個時段CPU總是要寫入到最新的那一個分區對應的磁盤中。另一個問題是:這樣分區是否可以提高讀取性能呢?答案是不一定,要看根據什么字段來查詢,如果是根據時間來查詢,根據時間生成報表那么這種分區肯定會提高查詢的效率,但是如果是按照某個客戶查詢客戶最近1年內的賬單數據,這樣數據分布到不同的分區上,這樣的話效率就不一定能提高了,這要看數據在同一個分區上連續分布的讀性能高,還是CPU從幾個磁盤上同步讀取,然后在合并數據的性能更高一些,這和讀取數據的記錄數也有關系。

如何分區?用什么字段做分區依據?
具體如何分區和涉及的業務有關系,要看業務上最經常的寫入和讀取操作是什么,然后再考慮分區的策略。

既然與具體業務相關,我們就假定一個業務環境,假如我們要做一個論壇,對論壇的帖子和回復表進行分區。
論壇中最常見的寫操作是1)發帖 2)回復帖子,
最常見的讀操作是
1) 根據帖子id顯示帖子詳情和分頁的帖子回復
2) 根據帖子版面帖子列表頁根據版面id分頁讀取帖子列表數據
怎么分區更合適呢?現在還沒有準確答案,我有兩種可能的方案,寫下來,大家討論看看。
方案1. 根據帖子ID區域段分區(1-300w一個分區、300w-600w一個分區…),這樣理論上可以提高帖子詳細頁的讀取速度,而對于寫操作性能沒有益處,對于根據版面id讀取帖子列表頁有可能有益
方案2. 根據版面id進行分區,這樣對于寫性能應該有提高,不同的分區對應不同的版面,當有兩個版面同時有發帖回帖操作時,有可能可以并發寫。對于根據版面id獲得帖子列表頁數據也可以提高性能,而對于帖子詳細信息頁沒有性能影響。

多大的數據量才需要分區?
這個問題只能說一個內部標準,如果一張表的記錄超過在超過1000w,并以每月百萬的數據量增長,那就需要分區。

關于具體的如何做分區,請參考數據庫分區演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

現在就與新鴻儒客服交流

400-024-1998

您也可進行在線咨詢或預約項目顧問
我要預約
在線咨詢